package uno.linze.interview_question.mapper;

import uno.linze.interview_question.domain.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

/**
* @author wangy
* @description 针对表【user(用户主表)】的数据库操作Mapper
* @createDate 2025-09-27 12:57:25
* @Entity generator.domain.User
*/
public interface UserMapper extends BaseMapper<User> {

    /**
     * 根据用户名查询用户是否存在
     * @param username 用户名
     * @return 存在返回true，不存在返回false
     */
    boolean existsByUsername(@Param("username") String username);

    /**
     * 根据邮箱查询用户是否存在
     * @param email 邮箱
     * @return 存在返回true，不存在返回false
     */
    boolean existsByEmail(@Param("email") String email);

    /**
     * 根据用户名或邮箱查询用户是否存在
     * @param username 用户名
     * @param email 邮箱
     * @return 存在返回true，不存在返回false
     */
    boolean existsByUsernameOrEmail(@Param("username") String username, @Param("email") String email);

    /**
     * 根据用户名查询用户信息(用于登录验证)
     * @param username 用户名
     * @return 用户信息，果不存在返回null
     */
    User selectByUsername(@Param("username") String username);

    /**
     * 根据用户名或邮箱查询用户信息(用于登录验证)
     * @param username 用户名
     * @param email 邮箱
     * @return 用户信息，如果不存在返回null
     */
    User selectByUsernameOrEmail(@Param("username") String username, @Param("email") String email);

}
